<?php
require_once "login.php";
require_once 'Controller/RepublicaController.php';
require_once 'DAO/DaoRepublica.php';
require_once 'DAO/DaoUsuarioRepublica.php';
require_once 'DAO/DaoSolicitacoes.php';
require_once 'DAO/DaoUsuario.php';

class MinhaRepublicaController {

    private $republica;
    private $usuario;

    function MinhaRepublicaController() {
        if (LoginController::singleton()->estaConectado()) {
            $this->usuario = LoginController::singleton()->getUsuario();

            $this->verificaFormExcluiUsuario();
            $this->verificaFormExcluiRepublica();
            $this->republica = $this->usuario->getRepublicaAtual();

            if ($this->republica != NULL) {
                $this->verificaFormSolicitacao();
            }
            if (!$this->verificaEvento()) {
                require_once 'viewMinhaRepublica.php';
            }
        } else {
            
        }
    }

    function verificaEvento() {
        if (isset($_POST['formDeleteUpdateEvento'])) {
            if (is_numeric($_POST['edtEvento'])) {
                if ($_POST['btnSubmit'] == 'update') {
                    $de = new DaoEventoRepublica();
                    $evento = $de->getEvento($_POST['edtEvento']);

                    require_once 'viewEditarEventoRepublica.php';
                    return "update";
                    //echo 'Aqui falta Terminar';
                } else if ($_POST['btnSubmit'] == 'delete') {
                    $dev = new DaoEventoRepublica();
                    $dev->deleteEventoByCodigo($_POST['edtEvento']);
                }
            }
        } else {
            if (isset($_POST['formEditarEventoRepublica'])) {
                if ($_POST['btnSubmit'] == 'update') {
                    $de = new DaoEventoRepublica();
                    $evento = $de->getEvento($_POST['codEvento']);
                    $this->updateEvento($evento);
                    //require_once 'viewMeusEventos.php';
                }
            }
        }

        $this->verificaRemoverImagensEventoRepublica();
        $this->verificaUpdateImagemEventoRepublica();
        $this->verificaAddImagensEventoRepublica();
        return false;
    }

    function verificaAddImagensEventoRepublica() {
        if (isset($_POST['formAddImagensEventoRepublica'])) {
            $DaoEventoRepublica = new DaoEventoRepublica();
            $evento = $DaoEventoRepublica->getEvento($_POST['edtEvento']);
            $idEvento = $evento->getCodigo();
            $imagem = new Imagem();
            $imagem->setDescricao("Imagem");
            $imagem->setPrincipal('N');
            $imagem->setObjeto($evento);
            $DaoImagemEventoRepublica = new DaoImagemEventoRepublica();
            $arquivos = 0;
            for ($i = 0; $i < count($_FILES['edtAddFotos']['name']); $i++) {
                if ($_FILES['edtAddFotos']['error'][$i] == UPLOAD_ERR_OK) {
                    if (is_uploaded_file($_FILES['edtAddFotos']['tmp_name'][$i])) {
                        $arquivos = $arquivos + 1;
                        $caminho = "eventos/E$idEvento-" . time() . "-F$arquivos.jpg";
                        if (move_uploaded_file($_FILES['edtAddFotos']['tmp_name'][$i], "C:/xampp/htdocs/Versao1/img/" . $caminho)) {
                            $imagem->setImagem($caminho);
                            $DaoImagemEventoRepublica->addImagem($imagem);
                        }
                    }
                }
            }
        }
    }

    function verificaRemoverImagensEventoRepublica() {
        if (isset($_POST['formRemoverImagensEventoRepublica'])) {
            $DaoImagemEventoRepublica = new DaoImagemEventoRepublica();
            $imagem = new Imagem();
            foreach ($_POST['edtRemoverImagens'] as $codImagem) {
                $imagem->setCodigo($codImagem);
                $DaoImagemEventoRepublica->removeImagem($imagem);
            }
        }
    }

    function verificaUpdateImagemEventoRepublica() {
        if (isset($_POST['formUpdateImagemEventoRepublica'])) {
            $DaoEventoRepublica = new DaoEventoRepublica();
            $evento = $DaoEventoRepublica->getEvento($_POST['edtEvento']);
            $idEvento = $evento->getCodigo();

            $imagem = new Imagem();
            $imagem->setObjeto($evento);
            $imagem->setDescricao("Simples");
            $imagem->setPrincipal("S");
            if ($_FILES['edtUpdateFoto']['error'] == UPLOAD_ERR_OK) {
                if (is_uploaded_file($_FILES['edtUpdateFoto']['tmp_name'])) {
                    $caminho = "republicas/R$idEvento-" . time() . "-F0.jpg";
                    if (move_uploaded_file($_FILES['edtUpdateFoto']['tmp_name'], "C:/xampp/htdocs/Versao1/img/" . $caminho)) {
                        $DaoImagemEventoRepublica = new DaoImagemEventoRepublica();
                        $imagem->setImagem($caminho);
                        $DaoImagemEventoRepublica->updateImagem($imagem);
                    }
                }
            }
        }
    }

    function verificaFormSolicitacao() {
        /*          Verifica Form de Solicitação na Republica               */
        if (isset($_POST['formSolicitacaoRepublica'])) {
            $ds = new DaoSolicitacoes();
            $sol = new Solicitacoes();
            $sol->setRepublica($this->republica);
            $du = new DaoUsuario();
            $usu = $du->getUsuario($_POST['usuario']);
            $sol->setUsuario($usu);
            if ($_POST['btnSubmit'] == 'remover') {
                $ds->removeSolicitacao($sol);
            }
            if ($_POST['btnSubmit'] == 'aceitar') {
                $ds->aceitaSolicitacao($sol);
            }
            if ($_POST['btnSubmit'] == 'email') {
                echo "Email";
//$ds->removeSolicitacao($sol);
            }
        }
    }

    function verificaFormExcluiUsuario() {
        /*          Verifica se foi excluido um Usuario da republica        */
        if (isset($_POST['formUpdateUsuariosRepublica'])) {
            $dur = new DaoUsuarioRepublica();
            $usurep = $dur->getRepublicaUsuario($_POST['codUsuario']);
            $dur->removeUsuarioRepublica($usurep);
        }
    }

    function verificaFormExcluiRepublica() {
        /*          Verifica se foi enviado o Form para exlusao da republica    */
        $dur = new DaoUsuarioRepublica();
        $dr = new DaoRepublica();
        if (isset($_POST['formRemoveRepublica'])) {
            $dr->deleteRepublica($_POST['codRepublica']);
            $dur->removeUsuariosByRepublica($_POST['codRepublica']);
        }
    }

    function getMinhaRepublica($republica) {
        if (is_a($republica, 'Republica')) {
            $dur = new DaoUsuarioRepublica();
            $usuariosRepublica = $republica->getMoradores();
            if (isset($_SESSION['Usuario'])) {
                $usuario = $_SESSION['Usuario'];
                $republicaUsuario = $usuario->getUsuarioRepublicaAtual();
                ?>
                <h1><a href="/Versao1/republica/<? echo $republica->getCodigo(); ?>"><? echo $republica->getNome(); ?></a></h1>

                <table class="table table-striped">
                    <caption><h3>Membros</h3></caption>
                    <tr>
                        <th>#</th>
                        <th>Nome</th>
                        <th>Membro desde</th>
                        <?
                        if ($republicaUsuario->getPrincipal() == 'S') {
                            ?>
                            <th>Remover</th>
                            <?
                        }
                        ?>
                    </tr>
                    <?
                    $cont = 1;
                    foreach ($usuariosRepublica as $usu) {
                        ?>
                        <tr>
                            <?
                            echo "<td>$cont</td>";
                            echo "<td>" . $usu->getUsuario()->getNome() . "</td>";
                            echo "<td>----</td>";
                            ?>
                        <form action="" method="POST">
                            <input type="hidden" name="formUpdateUsuariosRepublica" value="formUpdateUsuariosRepublica"/>
                            <input type="hidden" name="codUsuario" value="<? echo $usu->getUsuario()->getCodigo(); ?>"/>
                            <?
                            if ($republicaUsuario->getPrincipal() == 'S') {
                                ?>
                                <td><button class="btn" name="btnSubmit" type="submit" value="remover" title="Remover"><i class="icon-remove"> </i></button></td>
                                <?
                            }
                            ?>
                        </form>
                        <?
                        $cont++;
                        ?>
                    </tr>
                    <?
                }
                ?>
                </table>
                <a href="/Versao1/cadastroEventoRepublica" class="btn"><i class="icon-glass"></i> Novo Evento</a>
                <a href="/Versao1/editarRepublica" class="btn"><i class="icon-glass"></i> Editar Republica</a>
                <?
                if ($republicaUsuario->getPrincipal() == 'S') {
                    ?>
                    <form action="" method="POST">
                        <input type="hidden" name="formRemoveRepublica" value="formRemoveRepublica"/>
                        <input type="hidden" name="codRepublica" value="<? echo $republicaUsuario->getRepublica()->getCodigo(); ?>"/>
                        <button class="btn" name="btnSubmit" type="submit" value="remover" title="Remover"><i class="icon-remove"> </i> Remover</button>
                    </form>
                    <?
                } else {
                    ?>
                    <form action="" method="POST">
                        <input type="hidden" name="formUpdateUsuariosRepublica" value="formUpdateUsuariosRepublica"/>
                        <input type="hidden" name="codUsuario" value="<? echo $usu->getUsuario()->getCodigo(); ?>"/>
                        <button class="btn" name="btnSubmit" type="submit" value="remover" title="Remover"><i class="icon-remove"> </i> Sair da Republica</button>
                    </form>
                    <?
                }
            }
        } else {
            ?>
            <a href="cadastroRepublica" class="btn"><i class="icon-plus"></i> Criar nova republica</a>
            <?
        }
    }

    function getMeusEventos() {
        $eventos = $this->getRepublica()->getEventos();
        ?> 
        <table class="table table-striped">
            <tr>
                <th>#</th>
                <th>Codigo</th>
                <th>Titulo</th>
                <th>Data</th>
                <th><center>Excluir/Editar</center></th>
        </tr>
        <?
        $cont = 1;
        foreach ($eventos as $evento) {
            ?>
            <form action="" method="POST">
                <input type="hidden" name="formDeleteUpdateEvento" value="formDeleteUpdateEvento"/>
                <input type="hidden" name="edtEvento" value="<? echo $evento->getCodigo(); ?>"/>
                <tr>
                    <td><? echo $cont++; ?></td>
                    <td><? echo $evento->getCodigo(); ?></td>
                    <td><a href="/Versao1/universitario/evento/<? echo $evento->getCodigo(); ?>"><? echo $evento->getTitulo(); ?></a></td>
                    <td><? echo $evento->getData(); ?></td>
                    <td><center><button class="btn" name="btnSubmit" type="submit" value="delete" title="Excluir"><i class="icon-remove"></i></button>  <button class="btn" name="btnSubmit" type="submit" value="update" title="Editar"><i class="icon-edit"></i></button></center></td>
                </tr>
            </form>
        <? } ?>
        </table>
        <a href="/Versao1/cadastroEventoRepublica" class="btn"><i class="icon-plus"> </i>  Novo Evento</a>
        <?
    }

    function getSolicitacoes($republica) {
        if (is_a($republica, 'Republica')) {
            $solicitacoes = $republica->getSolicitacoes();
            ?>

            <table class="table table-striped">

                <tr>
                    <th>#</th>
                    <th>Usuario</th>
                    <th>Opções</th>
                </tr>
                <?
                $cont = 1;
                foreach ($solicitacoes as $solicitacao) {
                    ?>
                    <form action="" method="POST">
                        <input type="hidden" name="formSolicitacaoRepublica" value="formSolicitacaoRepublica"/>
                        <input type="hidden" name="usuario" value="<? echo $solicitacao->getUsuario()->getCodigo(); ?>"/>
                        <tr>
                            <td><? echo $cont; ?></td>
                            <td><? echo $solicitacao->getUsuario()->getNome(); ?></td>
                            <td><button class="btn" name="btnSubmit" type="submit" value="aceitar" title="Aceitar"><i class="icon-ok"> </i></button> <button class="btn" name="btnSubmit" type="submit" value="email" title="Email"><i class="icon-envelope"> </i></button> <button class="btn" name="btnSubmit" type="submit" value="remover" title="Remover"><i class="icon-remove"> </i></button></td>
                        </tr>
                    </form>
                    <?
                }
                ?>

            </table>

            <?
        } else {
            ?>
            <table class="table table-striped">
                <tr>
                    <th>#</th>
                    <th>Usuario</th>
                    <th>Opções</th>
                </tr>
            </table>
            <?
        }
    }

    function getRepublicasVertical() {
        
    }

    function updateEvento(EventoRepublica $ev) {
        $de = new DaoEventoRepublica();
        $ev->setTitulo($_POST['edtNomeEvento']);
        $ev->setDescricao(nl2br($_POST['edtDescricaoEvento']));
        $ev->setData($_POST['edtData']);
        $ev->setHoraInicio($_POST['edtHoraInicio']);
        $ev->setHoraFim($_POST['edtHoraFim']);
        $cont =1;
        foreach ($_POST['edtLotesMas'] as $mas) {
            $DaoLote = new DaoLoteEventoRepublica();
            $l = $DaoLote->getLote($_POST['edtCodLote'][$cont - 1]);
            if ($mas != 0)
                $l->setValorHomem($mas);

            if ($_POST['edtLotesFem'][$cont - 1] != 0)
                $l->setValorMulher($_POST['edtLotesFem'][$cont - 1]);

            $l->setNumero($cont);
            $l->setQuantidade($_POST['edtQuantidadeLote'][$cont - 1]);
            if ($_POST['edtQuantidadeLote'][$cont - 1] != 0) {
                $DaoLote->updateLote($l);
            } else {
                //$DaoLote->removeLote($l);
            }
            $cont++;
        }

        $de->updateEvento($ev);
    }

    public function getRepublica() {
        return $this->republica;
    }

    public function getUsuario() {
        return $this->usuario;
    }

}
?>
